本文同步更新於blog
橋接模式會將類別分為兩類:
分別是抽象類別 (Abstraction)與實現類別 (Implementor)。
抽象類別指的是高層級的抽象層。本身不具備具體邏輯。
而實現類別會由低層級的實作層來負責。
抽象類別 -> 實現類別
通話介面 -> 室內電話、行動電話
登入介面 -> Web、App
優點:
透過分離抽象層與實作層,可根據需求在不同層級上,作相應的變化。
缺點:
會使程式碼複雜度提高。
[策略模式]:
策略模式屬於 行為型 (behavioral) 的設計模式,
而橋接模式屬於 結構型 (structural) 的設計模式。
這使著兩者在目的上,有著根本的不同。
策略模式可能會隨著運行,動態地調整策略。
而橋接模式則會像是兩種不同的實作架構。
[狀態模式]:
狀態模式屬於 行為型 (behavioral) 的設計模式。
可能會在運行過程中改變內部狀態,進而改變具體行為。
設計模式 | 使用情境 |
---|---|
策略模式 | 擁有多家第三方金流,需在主要金流服務掛點時,採用備用金流機制。 |
狀態模式 | 行人號誌小綠人會隨著當前標誌不同,顯示不同的圖樣。 |
橋接模式 | 框架實作資料庫連線的介面,與其各自不同的具體實作。 |
ʕ •ᴥ•ʔ:以Laravel而言,設計模式到後來常常會混血,
最終還是回歸到S.O.L.I.D的思考。